Statisticians have long used cross-correlation to estimate the cause and effect relations in sets of population data. Also, engineering applications of cross-correlation have increased in the past few decades, most likely due to the availability of computers to produce cross-correlation results in real time.
Examples of these engineering applications include: recovery of information in weak radar echoes, identifying the dynamics of chemical processes, spectral analysis, analysis of electrophysical signals, structural fatigue analysis, and flow measurement.
As an example of the application of cross-correlation to flow measurement, a cross-correlation flow meter is shown in FIG. 1. Sensing transducers 110, 115 are spaced apart in the direction of flow. Sensing transducers 110, 115 detect fluid disturbances which are presumed to sustain their identity between these sensors and induce similar signals at each transducer. The two signals from sensing transducers 110, 115 are sampled by analog-to-digital converters 120, 125 respectively, and then sent to the cross-correlator 130.
Cross-correlator 130 samples the digital signals, shifts one signal relative to the other, one bit at a time, multiplies the signal and the shifted signal together, and takes the average of the result. The cross-correlation will reach a maximum when the two signals are identical, since the cross-correlator effectively multiplies the signal by itself. The location of the maximum identifies the time delay or flow movement from the upstream sensing transducer 110 to the downstream sensing transducer 115 for velocity calculation. Since the distance d between the sensing transducers 110, 115 is known, the average velocity can be found by dividing the distance by the time for the maximum correlation.
Another correlation technique, polarity correlation, involves sampling data over a short period of time. The signals can be represented as a string of "1"s for positive values and "0"s for negative values. A more efficient form of coding is to record the instant at which the signal changes from zero to one or vice versa, i.e., points of zero crossing. This allows the number of data items to be independent of the sampling rates, although the effect of missing one of the zero crossing points can be disastrous.
For cross-correlation using the zero crossing polarity, two blocks of data representing the upstream and the downstream zero crossing time intervals are needed. One signal is time shifted with respect to the other. Sometimes the signals are in agreement, i.e., both positive or both negative, and sometimes in disagreement, i.e., one positive, the other negative. The net agreement divided by the total observation period is the polarity cross-correlation. The difference between the current and previous transition is either added to or subtracted from the accumulated value, depending on whether the signals are in agreement or disagreement. This processing continues until all of the zero crossings have been searched.
The zero crossing correlator is perhaps the fastest software correlator available, but the microprocessor based polarity cross-correlator is more economical in terms of signal storage, faster execution time, and a higher operational bandwidth. However, the computational speed of the processing phase of the microprocessor based polarity cross-correlator is still not fast compared with the speed of data capture.